package lzwalgorithmus;

import java.util.HashMap;

public class LZW
{
  public static void main(String[] args)
  {
    String eingabe = "LZWLZ78LZ77LZCLZMWLZAP";
    HashMap<String, String> mustertabelle = new HashMap<String, String>();
    int count = 0;
    for(int i = 0; i<256; i++)
      mustertabelle.put((char)i+"", i+"");
    String muster = "";
    for(int i = 0; i<eingabe.length(); i++)
    {
      String zeichen = eingabe.charAt(i)+"";
      if(mustertabelle.containsKey(muster+zeichen))
        muster = muster+zeichen;
      else
      {
        mustertabelle.put(muster+zeichen, 256+count+"");
        count++;
        if(Integer.parseInt(mustertabelle.get(muster))<256)
          System.out.println(muster);
        else
          System.out.println("<"+mustertabelle.get(muster)+">");
        muster = zeichen;
      }
    }
    
    if(!muster.trim().isEmpty())
      System.out.println(muster);
    
  }
}
